//package com.witmore.neutron.ai.web.a_milvus;
//
//import com.jk.common.response.ResponseResult;
//import io.milvus.v2.client.MilvusClientV2;
//import io.milvus.v2.common.DataType;
//import io.milvus.v2.common.IndexParam;
//import io.milvus.v2.service.collection.request.AddFieldReq;
//import io.milvus.v2.service.collection.request.CreateCollectionReq;
//import io.milvus.v2.service.collection.request.DropCollectionReq;
//import io.milvus.v2.service.collection.response.ListCollectionsResp;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.List;
//
///**
// * Description: MilvusController
// * Author: 豆子高
// * Date: 2025/7/9 15:25
// */
//@RestController
//@RequestMapping("/develop/milvus")
//public class MilvusController {
//
//    @Autowired
//    private MilvusClientV2 milvusClient;
//
//    /**
//     * 创建collection
//     */
//    @PostMapping("/collection/create")
//    public ResponseResult<Void> createCollection() {
//        // 创建Schema
//        List<IndexParam> indexParams = List.of(IndexParam.builder()
//                        .fieldName("title")
//                        .indexType(IndexParam.IndexType.AUTOINDEX)
//                        .metricType(IndexParam.MetricType.IP)
//                        .build(),
//                IndexParam.builder().fieldName("embedding")
//                        .indexType(IndexParam.IndexType.AUTOINDEX)
//                        .metricType(IndexParam.MetricType.IP)
//                        .build());
//        CreateCollectionReq.CollectionSchema schema = milvusClient.createSchema();
//        schema.addField(AddFieldReq.builder()
//                        .fieldName("id")
//                        .dataType(DataType.Int64)
//                        .isPrimaryKey(true)
//                        .autoID(true)
//                        .maxLength(256)
//                        .build())
//                .addField(AddFieldReq.builder()
//                        .fieldName("title")
//                        .dataType(DataType.VarChar)
//                        .maxLength(256)
//                        .build())
//                .addField(AddFieldReq.builder()
//                        .fieldName("embedding")
//                        .dataType(DataType.FloatVector)
//                        .dimension(1536)
//                        .build())
//                .addField(AddFieldReq.builder()
//                        .fieldName("content")
//                        .dataType(DataType.VarChar)
//                        .maxLength(65535)
//                        .build())
//                .addField(AddFieldReq.builder()
//                        .fieldName("metadata")
//                        .dataType(DataType.JSON)
//                        .build())
//                .addField(AddFieldReq.builder()
//                        .fieldName("create_time")
//                        .dataType(DataType.Int64)
//                        .build());
//        CreateCollectionReq createCollectionParam = CreateCollectionReq.builder()
//                .collectionName("test_collection_gbh")
//                .description("用来操作数据库测试的")
//                .collectionSchema(schema)
//                .indexParams(indexParams)
//                .build();
//        milvusClient.createCollection(createCollectionParam);
//        return ResponseResult.success();
//    }
//
//    /**
//     * 修改 collection
//     */
//    @PostMapping("/collection/update")
//    public ResponseResult<Void> updateCollection() {
//        return ResponseResult.success();
//    }
//
//    /**
//     * 删除 collection
//     */
//    @PostMapping("/collection/delete")
//    public ResponseResult<Void> deleteCollection(@RequestBody String collectionName) {
//        milvusClient.dropCollection(DropCollectionReq.builder()
//                .collectionName(collectionName)
//                .build());
//        return ResponseResult.success();
//    }
//
//    /**
//     * 查询 collection
//     */
//    @PostMapping("/collection/query")
//    public ResponseResult<ListCollectionsResp> queryCollection() {
//        return ResponseResult.success(milvusClient.listCollections());
//    }
//
//    /**
//     * 插入数据
//     */
//    @PostMapping("/collection/insert")
//    public ResponseResult<Void> insertData() {
//        return ResponseResult.success();
//    }
//
//
//}
